Scheduling methods are commonly used in a data processing system to control submission of different work units (for example, jobs in a batch processing). For this purpose, several types of workload schedulers have been proposed in the last years to automate the submission of large quantities of jobs. An example of scheduler is the “Tivoli Workload Scheduler” by IBM Corporation.
A scheduler submits the jobs according to a predefined plan. The plan establishes a flow of execution of the jobs, which is based on their desired starting time and possible dependencies (for example, defined by the completion of predecessor jobs or by the availability of system resources).
A drawback of the schedulers known in the art is the lack of an efficient support for tuning the building of the plan. Typically, the plan is defined structuring the sequence of execution of the jobs according to their duration. For this purpose, most of the schedulers currently available automatically predict an estimated duration of each job; typically, the estimated duration of the job is calculated averaging the measured durations of instances of the job that have been executed previously.
However, this technique often leads to very poor results in terms of the overall performance of the system. Indeed, the duration of the jobs can depend on many factors that are completely unrelated from their characteristics (for example, a temporary unavailability of a required resource of the system). Moreover, the duration of the jobs is not indicative of their actual usage of the resources of the system.
As a consequence, the schedulers known in the art do not allow choosing the proper distribution of the jobs in the plan so as to optimize the consumption of the resources of the system. Moreover, no support is provided for balancing a workload of the system, in order to increase its overall performance.
An additional drawback is the lack of an efficient tool for simulating the impact of the plan on the system and for identifying possible bottlenecks (so as to avoid undesired delays in the executions of the jobs or service disruptions due to resource shortages). Moreover, no support is available for evaluating the effects of any change to the plan on the performance of the system, before the plan is actually submitted.